aoメッセージングの仕組み
aoに深く入り込む前に、少しUnixについてお話ししたいと思います。Unixは強力なオペレーティングシステムですが、その設計では2つの主要な「タイプ」に焦点を当てています。ファイルとプログラムです。ファイルはデータで、プログラムはロジックです。この2つを組み合わせると、情報が得られます。
Input.file | TransformProgram | Output.file
コマンドラインでこれに似たことを、知らず知らずのうちにやっているかもしれません。ファイルをプログラムに接続し、プログラムの結果として返されたファイルをさらに別のプログラムに渡すことができるようになると、シンプルなアプリケーションで構成された複雑なシステムを作成できます。これは非常に強力なアイデアです。
さて、aoというハイパーパラレルコンピュータについて話しましょう。そして、ファイルという概念をaoの「メッセージ」の概念に、プログラムという概念をaoの「プロセス」の概念に置き換えてみます。aoコンピュータはメッセージを受け取り、それをプロセスに送信します。プロセスはメッセージを出力し、それが他のプロセスに送信されます。その結果、シンプルなモジュラーなロジックコンテナに基づいた複雑なシステムが構築されます。
MessageA | Process | MessageB
以下は、フローチャートに記載されたプロセスの説明です:
メッセージはao Connectから開始されます。このメッセージは、
mu
サービスにPOSTリクエストを使用して送信されます。リクエストの本文には、‘ao`というプロトコルに従ったデータが含まれており、‘Message’というタイプです。mu
サービスはPOSTリクエストを処理し、メッセージをsu
サービスに転送します。これも同様に、同じデータプロトコルとメッセージタイプを使用してPOSTリクエストが行われます。su
サービスは、その割り当てとメッセージをArweaveに保存します。メッセージIDに基づいて結果を取得するために、cuサービスにGETリクエストが行われます。
cu
はプロセス上のメッセージを評価し、個別のメッセージ識別子に基づいて結果を返すことができるサービスです。割り当てとメッセージを取得するために、
su
サービスにGETリクエストが行われます。このリクエストは、プロセスIDからのメッセージを、開始時間(最後の評価ポイントから)から現在のメッセージIDまでの範囲で探します。最終ステップは、アウトボックスのメッセージをプッシュすることです。メッセージとResultオブジェクト内で生成された内容を確認します。このチェックの結果に基づいて、ステップ2、3、および4が関連するメッセージや生成に対して繰り返される場合があります。